import {
  Message
} from 'element-ui'

import dayjs from 'dayjs'
const ymd = dayjs().subtract(0, 'day').format('YYYY-MM-DD') + '' + ' 00:00'
const ym = dayjs().subtract(1, 'day').format('YYYY-MM-DD')
const y = dayjs().subtract(0, 'month').format('YYYY-MM')

const ymd_1 = dayjs(ymd).subtract(1, 'day').format('YYYY-MM-DD') + '' + ' 00:00'
const ym_1 = dayjs(ym).startOf('month').format('YYYY-MM-DD')
const y_1 = dayjs(y).startOf('year').format('YYYY-MM')
// alert(dayjs().format('YYYY'))
const s_e = function (s, e, type, arr) {
  return new Promise((resolve, reject) => {
    // 1 === 日 2 === 月 3 === 年
    let d = 1000 * 60 * 60 * 24
    let m = d * 31
    let y = d * 365
    let s_value = dayjs(s + ':00').valueOf()
    let e_value = dayjs(e + ':00').valueOf()

    if (e_value < s_value) {
      Message({
        message: '开始时间不能大于结束时间',
        type: 'error'
      })
      return false
    }
    switch (type) {
      case 1:
        if (e_value - s_value <= d) {
          resolve()
        } else {
          Message('查询时间跨度最大为24小时')
          reject()
        }
        break
      case 2:
        if (e_value - s_value < m) {
          resolve()
        } else {
          Message('查询时间跨度最大为31天')
          reject()
        }
        break
      case 3:
        if (e_value - s_value < y) {
          resolve()
        } else {
          Message('查询时间跨度最大为12个月')
          reject()
        }
        break
      case 'month72':
        if (e_value - s_value <= d*3) {
          resolve()
        } else {
          Message('查询时间跨度最大为72小时')
          reject()
        }
        break
      case 0:
        if (e_value - s_value >= (arr[0] - 1) * d && e_value - s_value <= (arr[1] - 1) * d) {
          resolve()
        } else {
          Message('28-92')
          reject()
        }
        break
      default:
        return false
    }
  })
}
const init_value = function (d_type) {
  switch (d_type) {
    case "datetime":
      return {
        s: ymd_1,
        e: ymd
      }
      break
    case "date":
      return {
        s: ym_1,
        e: ym
      }
      break
    case "month":
      return {
        s: y_1,
        e: y
      }
      break
  }
}
const change_type = function (type) {
  switch (type) {
    case 1:
      return {
        v: 'yyyy-MM-dd HH:mm',
        d: 'datetime'
      }
      break
    case 2:
      return {
        v: 'yyyy-MM-dd',
        d: 'date'
      }
      break
    case 3:
      return {
        v: 'yyyy-MM',
        d: 'month'
      }
      break
  }
}
const D = {
  ymd_1,
  ym_1,
  y_1,
  ymd,
  ym,
  y,
  s_e,
  init_value,
  change_type
}
export default D